// 版权所有2011 Go作者。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package objabi

import "internal/buildcfg"

// 用于链接器。必须符合围棋的定义。

const (
	STACKSYSTEM = 0
	StackSystem = STACKSYSTEM
	StackBig    = 4096
	StackSmall  = 128
)

// 根据目标系统初始化StackGuard和StackLimit。
var StackGuard = 928*stackGuardMultiplier() + StackSystem
var StackLimit = StackGuard - StackSystem - StackSmall

// stackGuardMultiplier返回一个乘数，应用于默认的
// 堆栈保护大小。较大的乘法器用于具有较大堆栈帧的非优化
// 构建或用于特定目标。
func stackGuardMultiplier() int {
	// 在AIX上，系统调用需要更大的堆栈。
	if buildcfg.GOOS == "aix" {
		return 2
	}
	return stackGuardMultiplierDefault
}
